Hvordan utvikle på UKEavvik

Sette opp utviklings-instans

Få en lokal kopi

Man setter gjerne opp en utviklings-instans på cirkus, og vi ønsker en url alá https://erlendps-avvik.uka.no

Først tar vi en klone av master-branchen.

BRUKERNAVN@cirkus:~/dev$ git clone gitea@gitea.samfundet.no:ITK/avvikuka.git

Kopier local.py fra en annen som utvikler:

BRUKERNAVN@cirkus:~/dev$ cp /home/cassarossa/itk/erlendps/dev/avvikuka/avvikuka/settings/local.py avvikuka/avvikuka/settings/local.py

Lag virtualenvironment, og installer pakker

virtualenv -p $(which python3) --system-site-packages venv && source venv/bin/activate
pip install -r requirements_dev.txt

ACL-er

Husk å sette opp riktige rettigheter ved å følge noden acl permissions

Kjøre på cirkus

I resten av noden skal BRUKERNAVN byttes ut med ditt brukernavn.

Apache-konfigurasjon

Kopier en fungerende config fra en annen på cirkus, og bytt ut brukernavnet deres med ditt eget alle steder det står. Apache-config-filene ligger i /etc/apache2/sites-available/ Pass på at DocumentRoot er riktig.

AssignUserID skal settes til uka-httpd uka-web

For å legge til denne i sites-enabled bruker vi følgende:

bruker@maskin:~$ sudo a2ensite innsida-BRUKERNAVN.uka.no

Før apacheconfigen lastes inn, må vi legge til en DNS-oppføring.

DNS

Følg instruksjonene i DNS-noden.

Reload Apacheconfigen:

BRUKERNAVN@cirkus:~$ sudo systemctl reload apache2

Kerberos

Du har kanskje gjort det allerede, og innsett at passord/brukernavnet ditt ikke virker. Vi må sette opp egen Kerberos-keytab for utviklings-instansen din.

Under kan det være greit å godta defaults. Følg det som står i "Opprette Kerberos-keytab" i autentisering_og_autorisering-artikkelen

Pass på at Apache-configen bruker riktig AuthType og keytab.

uwsgi

Nå må vi opprette en uwsgi config-fil. Kopier en annen person sin, bytt ut brukernavnet deres med ditt eget alle steder det står og endre den slik at den bruker din dev-instans.

BRUKERNAVN@cirkus:~$ cd /etc/uwsgi/apps-available
BRUKERNAVN@cirkus:~$ cp avvik-erlendps.uka.no.ini avvik-BRUKERNAVN.uka.no.ini
BRUKERNAVN@cirkus:~$ cd /etc/uwsgi/apps-enabled.custom
BRUKERNAVN@cirkus:~$ ln -s /etc/uwsgi/apps-available/avvik-BRUKERNAVN.uka.no.ini avvik-BRUKERNAVN.uka.no.ini

Av sikkerhetsgrunner er det også viktig å sette uid og gid i configen til riktig bruker avhengig av hvilken side det er snakk om, eks uka sider er uid=uka-httpd, og gid=uka-web, tilsvarende for ufs er uid=ufs-httpd, og gid=ufs-web. Dette er fordi vi ikke vil ha uwsgi instanser kjørende som din personelige bruker siden denne har sudo tilgang.

Da må du også passe på at gruppen, eks uka-web har lesetilgang til kildekoden. NB kun gruppen uka-web skal ha lesetilgang, ikke uka-httpd.

Så må vi fortelle uwsgi om instansen din.

bruker@cirkus:~$ sudo systemctl enable uwsgi-custom@avvik-BRUKERNAVN.uka.no
bruker@cirkus:~$ sudo systemctl start uwsgi-custom@avvik-BRUKERNAVN.uka.no

https

Vi har lyst til å bruke https, se noden om Let's Encrypt

Englesk på UKEavvik

Det er støtte for engelsk på UKEavvik. Man kan se eksempler på hvordan man markerer tekst for oversetting i kodebasen. Når man har markert tekst, hent ut språket ved management kommandoen extract_languages:

(venv) BRUKERNAVN@cirkus:~/dev/avvikuka$ python manage.py extract_languages

Send over teksten som skal bli oversatt til HMS (de ligger i .po filer), og når du får det tilbake, sett inn oversettelse i .po filene, og kompiler språket:

(venv) BRUKERNAVN@cirkus:~/dev/avvikuka$ python manage.py compile_languages

Når du har utviklet det du vil

Når du har utviklet det du vil og testet at det fungerer, commit endringene dine og push til main.

Rulle ut ny versjon

Først naviger til produksjonkildekoden

BRUKERNAVN@cirkus:~$ cd /var/www/uka.no/avvik/uno

Deretter må vi bytte bruker til uka-httpd for å pulle fra main:

BRUKERNAVN@cirkus:/var/www/uka.no/avvik/uno$ sudo su -s /bin/bash uka-httpd
uka-httpd@cirkus:/var/www/uka.no/avvik/uno$ git pull

Om committen introduserer databasemigreringer eller nye statisk filer må dette også håndteres:

uka-httpd@cirkus:/var/www/uka.no/avvik/uno$ source venv/bin/activate
uka-httpd@cirkus:/var/www/uka.no/avvik/uno$ python manage.py migrate
uka-httpd@cirkus:/var/www/uka.no/avvik/uno$ python manage.py collectstatic

Gå ut av skallet, og restart uwsgi-instansen;

BRUKERNAVN@cirkus:~$ sudo systemctl restart uwsgi-custom@avvik.uka.no

Lenker: Start

Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2023-08-20 15:41 | Revisjon: 4 (historie, blame) | Totalt: 1905 kB | Rediger